Modern day communication and applications are facilitated by message processors communicating messages back and forth. A variety of communication protocols have been developed, each capable of performing distinct message exchange patterns. For instance, in half-duplex protocols, a single request is followed by a single response. In full-duplex protocols, however, there can be any number of incoming messages and any number of outgoing messages all corresponding to the same message exchange.
In order for messages to be considered to be part of the same message exchange, there is usually some mechanism for correlating each message to the message exchange. In any given protocol, there may be one or more mechanisms for correlating such messages. Given that there are a wide variety of communication protocols available to engage in message exchange patterns, this means there is a large variety of correlation mechanisms available to correlate messages in the same message exchange pattern.